function dfds = df_ds(p_i_s, s, v_i_s, f_c)
%DF_DS观测方程对状态量s的偏导
%   此处显示详细说明
    n = length(p_i_s);
    env = enviroment;
    satpos = p_i_s;
    satvel = v_i_s;
    ini_pos_temp = s(1:3);
    ini_vel_temp = s(4:6);
    
    V = (satvel-ini_vel_temp);
    P = (satpos-ini_pos_temp);
    R = vecnorm((satpos-ini_pos_temp)')';
    E_array = (satpos-ini_pos_temp)./R;
    dp_dpos = P./R.*(sum(P.*V,2)./(R.^2))-V./R;  %多普勒对三个方位置偏导
    % dp_dtu = ones(n,1);
    dp_dtu = ones(n,1);
    dp_dvx = -E_array(:,1);
    dp_dvy = -E_array(:,2);
    dp_dvz = -E_array(:,3);
    G = [dp_dpos,dp_dvx,dp_dvy,dp_dvz,dp_dtu]./(env.c/f_c);
    dfds = -G;
end

